package com.fansl.koala.quickdev.module.users.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fansl.koala.quickdev.common.bean.PageBean;
import com.fansl.koala.quickdev.module.users.bean.dto.SysUserDTO;
import com.fansl.koala.quickdev.module.users.entity.SysUser;
import com.fansl.koala.quickdev.module.users.vo.SysUserVo;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author fansl
 * @since 2020-03-13
 */
public interface ISysUserService extends IService<SysUser> {

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return 用户信息
     */
    SysUser getByUsername(String username);

    /**
     * 账号激活
     *
     * @param id 用户id
     * @return TRUE/FALSE
     */
    Boolean accountActivate(Long id);

    /**
     * 根据邮箱获取用户信息
     *
     * @param email 邮箱
     * @return 用户信息
     */
    SysUser getByEmail(String email);

    /**
     * 更新用户信息
     *
     * @param param 更新参数
     * @return TRUE/FALSE
     */
    boolean updateById(SysUserDTO param);

    /**
     * 分页查询数据
     *
     * @param pageParam 分页条件
     * @param sysUser   查询参数
     * @return 分页数据
     */
    PageBean<SysUserVo> listPage(PageBean<SysUserVo> pageParam, SysUser sysUser);
}
